草庐IT

使用Qt基础类开发上位机程序:QGraphicView、QTable、QModbus等实践

在工业自动化领域中,上位机程序是一种常见的控制软件,用于监视和控制各种自动化设备和生产线。上位机程序通常需要实时显示大量数据和图形化界面,以便用户能够实时掌握设备状态并进行操作。Qt是一种广泛使用的跨平台GUI应用程序开发框架,它提供了丰富的GUI组件和工具,以便开发人员快速构建功能丰富的用户界面。在本文中,我们将介绍如何使用Qt的基础类,包括QGraphicView、QTable、QModbus等来开发一个简单的上位机程序。QGraphicView的使用首先,我们将介绍如何使用QGraphicView类来显示图形化界面。QGraphicView是Qt中一个强大的图形显示类,可以显示各种图形元

基于qt+halcon实现视觉定位模板匹配【附部分源码】

文章目录前言演示视频一、项目文件目录讲解二、QtDesigner设置ui界面1.CtuImageMatching.ui界面详解2.CameraSetting.ui的设置3.Calibration.ui的设置4.Helper.ui的设置三、文件算法解析1.CameraSetting.cpp重要函数解析1.首先定义好相机设置的初始化2.查找相机3.连接相机4.获取相机参数5.设置相机参数6.获取图像,送到外部2.Calibration.cpp重要函数解析1.生成标定文件2.根据标定文件转化数据3.CtuImageMatching.cpp重要函数解析1.初始化主窗体halcon2.鼠标移动到图像上获

Qt开发笔记-----基础篇

Qt开发笔记-----基础篇1.1为什么要学QtQt是一个跨平台的C++图形用户界面应用程序框架Qt为应用程序开发者提供建立艺术级图形界面所需的所有功能Qt是完全面向对象的,很容易扩展,并且允许真正的组件编程(1)Qt发展史在讲解学习Qt的必要性之前,先来了解下Qt的发展历史:1991年,Qt最早由奇趣科技(TrollTech)开发1996年,进入商业领域,它也是目前流行的Linux桌面环境KDE的基础2008年,奇趣科技被诺基亚公司收购,Qt成为诺基亚旗下的编程语言2012年,Qt又被Digia公司收购2014年4月,跨平台的集成开发环境QtCreator3.1.0发布,同年5月20日配发了

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例)

Qt入门实战教程(目录)前驱文章:QtCreator创建Qt默认窗口程序(推荐)什么是事件事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。事件(event)驱动的GUI窗口程序。例如点击鼠标,按下按键。在Qt中使用一个对象来表示一个事件,它继承自QEvent类。常见事件如鼠标事件(例如点击一下鼠标左键)、键盘事件(例如按下键盘的某个键)、定时事件、上下文菜单事件、关闭事件、拖放事件、绘制事件。常见事件官方介绍​既然事件发生了,那么我们就需要对一个事件进行处理,就像我们点击了一下鼠标左键,程序就给了我们反馈一样,那么我们通过什么来对事件进行处理呢?事件的处理在QWi

android - Qt移动视频通话流

我是QtMobile的新手,我什至没有扎实的移动开发经验,很抱歉,如果我问的是一些显而易见的问题。我需要开发一个移动应用程序,它应该能够接听类似电话的功能(通过互联网,而不是GSM电话)。回答后,它应该开始从我们的服务器流式传输音频和视频。调用应该是单向的,这意味着流从服务器到设备,而不是从设备到服务器。所以我的问题是:这在Qt中可行吗?我选择Qt是因为我熟悉它,我想支持桌面、android和ios。以后可能是WindowsPhone。当屏幕关闭且我的应用程序未运行时是否可以接听电话?我的意思是,这是一个移动设备,应用程序不会一直运行,它应该只在服务器向设备发出调用时启动。我怎样才能做

解决方案——Linux下Qt编译或运行项目“cannot find -lGL”错误

1、原因分析在很多linux发行版系统的Qt安装完后,编译或运行项目会报出“cannotfind-lGL”错误,即没找到libGL.so库(OpenGL的动态链接库),大部分系统都是默认安装该库的,但是不同的系统路径放置可能有差异,还有就是linux发行版本自带的libGL.so库会增加版本号后缀,因此,“cannotfind-lGL”错误一般都是路径不对导致。2、解决方案(1)执行命令:find/usr/lib/-name"libGL*" 寻找当前系统中所有的libGL文件,如图所示:(2)给其中的一个libGL库创建软连接,供qt编译使用(这里选择/usr/lib/x86_64-linux

FFmpeg入门详解之122:Qt5 FFmpeg本地摄像头采集预览实战

6.Qt5+FFmpeg本地摄像头采集预览实战源码工程:S26_Test2FFmpeg命令行处理摄像头ffmpeg-list_devicestrue-fdshow-idummy命令执行后输出的结果如下(注:中文的设备会出现乱码的情况)。列表显示设备的名称很重要,输入的时候都是使用“-fdshow-ivideo="{设备名}"”的方式。获取摄像头数据(保存为本地文件或者发送实时流)编码为H.264,保存为本地文件下面这条命令,实现了从摄像头读取数据并编码为H.264,最后保存成mycamera.mkv。ffmpeg-fdshow-ivideo="LenovoEasyCamera"-vcodecl

c++ - 如何在不使用 QTcpSockets 的情况下在 Qt 中创建插槽并将其连接到 TCP recv()?

我想在Qt中或在C++中为TCP中的recv()函数创建一个插槽,以便当套接字接收到数据时它会自动调用该插槽,我可以使用QTcpSockets来完成,但我不能'由于某些限制,我没有使用它们。目前我正在使用计时器从recv()函数接收数据。请指引我正确的方向。tcp.hifndefTCP_H#defineTCP_H#pragmaonce#include#include#include#include"config.h"#include"tcp_packets.h"#include"change_ending.h"#include"md5.h"#pragmacomment(lib,"Ws2

Qt之QTableView显示鼠标悬浮下的项的信息

        业务上遇到一些需求,某个需求是当鼠标移动到QTableView的item上时,显示该item的某些信息。首先想到的思路就是鼠标悬浮事件,即安装QTableView的事件过滤器,然后在eventFilter进行判断即可。实现很简单,主要在针对qt界面处理子界面的事件响应时,主要是还没搞清楚ui.tableView->viewport()->installEventFilter(this)的使用场景,就先记录一下。步骤如下:1、安装QTableView的事件过滤器ui.tableView->installEventFilter(this);​网上有一种说法,还需要使用ui.tabl

Qt开发:自定义对话框

1、添加自定义对话类框。首先向该项目中添加Qt设计师界面类。界面模板选择DialogwithoutButtons,类名改为MyDialog。然后在设计模式中向窗口添加两个PushButton,并且分别更改其显示文本为“进入主界面”和“退出程序”     voidMyDialog::on_pushButton_clicked(){accept();}这个accept()函数是QDialog类中的一个槽,对于一个使用exec()函数实现的模态对话框,执行了这个槽就会隐藏这个模态对话框,并返回QDialog::Accepted值,这里就是要使用这个值来判断是哪个按钮被按下了。与其对应的还有一个rej